perm filename FOO.PPR[W82,JMC] blob sn#646377 filedate 1982-03-05 generic text, type T, neo UTF8
the proof FLAT:

(DECL (FLAT) |GROUND⊗GROUND→GROUND| CONSTANT)
1. NIL
   deps: NIL

(AXIOM |∀X U.FLAT(X,U)=IF ATOM X THEN X~U ELSE FLAT(CAR X,FLAT(CDR X,U))|)
2. ∀X U.FLAT(X,U)=IF ATOM X THEN X~U ELSE FLAT(CAR X,FLAT(CDR X,U))
   deps: NIL

(COMMENTL LNAME DEFINFO)
3. NIL
   deps: NIL

(DECL (FLATTEN) |GROUND→GROUND| CONSTANT)
4. NIL
   deps: NIL

(AXIOM
 |∀X.FLATTEN(X)=IF ATOM X THEN LIST(X) ELSE FLATTEN(CAR X)*FLATTEN(CDR X)|)
5. ∀X.FLATTEN(X)=IF ATOM X THEN LIST(X) ELSE FLATTEN(CAR X)*FLATTEN(CDR X)
   deps: NIL

(COMMENTL LNAME DEFINFO)
6. NIL
   deps: NIL

(LINENAME LISTPFLATTEN *)


(COMMENTL LNAME LISTPFLATTEN)
7. NIL
   deps: NIL

(∀E PHI |λX.∀U.FLAT(X,U)=FLATTEN(X)*U| SEXPINDUCTION
 |NIL*([1#1#1](&DEFINFO*NIL*$DEFINFO**SIMPINFO*NIL))*NIL*
  ([1#1#2](&DEFINFO**SIMPINFO*NIL))| LISTPFLATTEN SORTINFO)
8. (∀X Y.(∀U.FLAT(X,U)=FLATTEN(X)*U)∧(∀U.FLAT(Y,U)=FLATTEN(Y)*U)⊃
          (∀U.FLAT(X,FLAT(Y,U))=FLATTEN(X)*FLATTEN(Y)*U))⊃
    (∀X U.FLAT(X,U)=FLATTEN(X)*U)
   deps: NIL

(ASSUME |(∀U.FLAT(X,U)=FLATTEN(X)*U)∧(∀U.FLAT(Y,U)=FLATTEN(Y)*U)|)
9. (∀U.FLAT(X,U)=FLATTEN(X)*U)∧(∀U.FLAT(Y,U)=FLATTEN(Y)*U)
   deps: (9)